import java.util.Scanner;
import java.util.*;
public class Main {
    /*给你一个整数数组 nums 。每次 move 操作将会选择任意一个满足 0 <= i < nums.length 的下标 i，
    并将 nums[i] 递增 1。
    返回使 nums 中的每个值都变成唯一的所需要的最少操作次数。
    生成的测试用例保证答案在 32 位整数范围内。*/
    public static int checkchange(int[] nums) {
        Arrays.sort(nums);
        //记录前一个值
        int pre=nums[0];
        int count=0;
        for(int i=1;i<nums.length;i++){
            //判断nums[i]与nums[i-1]的关系(是否等于)
            if(nums[i]<=pre){
                //记录每次的增加
                int temp=pre+1;
                //需要的操作数
                count+=temp-nums[i];
                //更新当前值
                nums[i]=temp;
            }
            //更新前一个数
            pre=nums[i];
        }
        return count;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] nums = new int[n];
        for (int i = 0; i < n; i++) {
            nums[i] = sc.nextInt();
        }
        int result=checkchange(nums);
        System.out.println(result);
    }
}